import time
def metric (fn):
    # 对程序进行封装
    def wrapper(*args,**kwargs):
        #记录程序执行前一刻的时间
        start_time = time.time()
        #运行传入的程序
        fn(*args,**kwargs)
        #记录程序执行完成的时间
        end_time = time.time()
        print('执行%s耗时:%f s'% (fn.__name__,end_time-start_time))
    return wrapper


# 拿9*9 乘法表 实验
@ metric
# for loop 9*9 乘法表
# 行遍历1-9
def nine_nine():
    # 休眠一秒
    print('休眠1秒')
    time.sleep(1)
    for row in range(1,10):
        #列遍历1-row
        for col in range(1,row+1):
            #打印乘法，结果占4个位置并且左对齐，不换行
            print('{}*{}={:<4}'.format(col,row,row*col),end='')
        print()
    # 分隔符
    print("="*80)
    #行遍历9-1
    for row in range(9,0,-1):
        #列遍历1-row
        for col in range(1,row+1):
            #打印乘法，结果占4个位置对齐，不换行
            print('{}*{}={:<4}'.format(col,row,row*col),end='')
        print()
    print("="*80)
    #遍历1-9
    for row in range(1,10):
        #空格占位
        print(' ' * 8 * (9 - row), end='')
        #列遍历row-1
        for col in range(row,0,-1):
            #打印乘法，结果占4个位置并且左对齐，不换行
            print('{}*{}={:<4}'.format(col,row,row*col),end='')
        print()
    print("="*80)
    #行遍历9-1
    for row in range(9,0,-1):
        # 空格占位
        print(' ' * 8 * (9 - row), end='')
        #列遍历1-row
        for col in range(row,0,-1):
            #打印乘法，结果占4个位置对齐，不换行
            print('{}*{}={:<4}'.format(col,row,row*col),end='')
        print()
    print("="*80)
    # while loop 9*9 乘法表
    # 行遍历1-9
    row = 1
    while row <=9:
        #列遍历1-row
        col = 1
        while col <=row:
            #打印乘法，结果占4个位置并且左对齐，不换行
            print('{}*{}={:<4}'.format(col,row,row*col),end='')
            col=col+1
        row=row+1
        print()
    print("="*80)
    #行遍历9-1
    row = 9
    while row >=1:
        #列遍历1-row
        col = 1
        while col <=row:
            #打印乘法，结果占4个位置对齐，不换行
            print('{}*{}={:<4}'.format(col,row,row*col),end='')
            col=col+1
        print()
        row=row-1
    print("="*80)
    #遍历1-9
    row =1
    while row <=9:
        #空格占位
        print(' ' * 8 * (9 - row), end='')
        #列遍历row-1
        col = row
        while col >=1:
            #打印乘法，结果占4个位置并且左对齐，不换行
            print('{}*{}={:<4}'.format(col,row,row*col),end='')
            col=col-1
        print()
        row=row+1
    print("="*80)
    #行遍历9-1
    row = 9
    while row >=1:
        # 空格占位
        print(' ' * 8 * (9 - row), end='')
        col=row
        #列遍历1-row
        while col >=1:
            #打印乘法，结果占4个位置对齐，不换行
            print('{}*{}={:<4}'.format(col,row,row*col),end='')
            col=col-1
        print()
        row = row -1
nine_nine()

